package com.heima.service;

import com.heima.dto.ClueDto;
import com.heima.dto.ClueSelectDto;
import com.heima.dto.FalseClueReasonDto;
import com.heima.dto.pagedto.CluePageDto;
import com.heima.entity.Clue;
import com.heima.pojo.Activities;
import com.heima.result.PageResult;
import com.heima.vo.ClueVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public interface ClueService {
    /**
     * 线索添加
     * @param clueDto
     */
    void add(ClueDto clueDto);

    /**
     * 分页查询线索
     * @param cluePageDto
     * @return
     */
    PageResult pageQuery(CluePageDto cluePageDto);

    /**
     * 通过 excel 实现批量上传的效果
     * @param file
     */
    void addBatch(MultipartFile file) throws IOException;

    /**
     * 根据 channelId 查询活动
     * @param channelId
     */
    List<Activities> queryActivityListByChannelId(Integer channelId);

    /**
     * 通过 id 查询 线索
     * @param id
     * @return
     */
    ClueVo queryById(Integer id);

    /**
     * 伪线索设置
     * @param id
     * @param reason
     */
    void falseClueSetting(Integer id, FalseClueReasonDto reason);

    /**
     * 添加记录
     * @param clueDto
     */
    void record(ClueDto clueDto);

    /**
     * 线索池分页查询
     * @param cluePageDto
     * @param begin
     * @param end
     * @return
     */
    PageResult poolPageQuery(CluePageDto cluePageDto, String begin, String end);

    /**
     * 批量捞取
     * @param ids
     */
    void batchGain(ArrayList<Integer> ids);

    /**
     * 线索转商机
     * @param id
     */
    void changeBusiness(Integer id);

    /**
     * 线索分配
     * @param clueSelectDto
     */
    void assignment(ClueSelectDto clueSelectDto);
}
